#ifndef CONFIG_H
#define CONFIG_H

/******************窗口设置*******************/
enum WidgetInfo
{
    WIDGET_WIDTH = 1200,           // 窗口宽度
    WIDGET_HEIGHT = 830,           // 窗口高度
};

#define GAME_TITLE "异形工厂"       // 标题
#define GAME_RES_PATH "./res.qrc"   // 资源文件相对路径
#define GAME_ICON "://res/icon.png" // 图标
#define LOGO_PATH ":/res/logo.png"  // logo
#define WIN_PATH ":/res/win.png"    // win图案
/******************游戏界面背景*******************/
enum GameInfo
{
    GAME_WIDTH = 1200, // 可放置物体区域宽度
    GAME_HEIGHT = 750, // 可放置物体区域高度
    WIDTH = 24,        // 可放置物体区域横向网格数
    HEIGHT = 15,       // 可放置物体区域纵向网格数
    CELLSIZE = 50,     // 每个格子的边长
    ITEM_SIZE = 30    // 物品大小
};


/******************矿地资源*******************/
#define CYCLE_MINE_PATH "://res/cycle_mine.png" // 圆形矿地
#define RECT_MINE_PATH "://res/rect_mine.png"   // 方形矿地
#define BARRIER_PATH ":/res/barrier.png"        // 障碍物
/*********************按钮***********************/
#define BUTTON_SIZE 80                                // 选择工具区域的工具按钮大小
#define MINER_BUTTON_PATH "://res/miner_button.png"   // 采矿机
#define BELT_BUTTON_PATH "://res/belt_button.png"     // 传送带
#define CUTTER_BUTTON_PATH "://res/cutter_button.png" // 切割机
#define TRASH_BUTTON_PATH ":/res/trash_button.png"    // 垃圾桶
/****************不同大小的交付中心******************/
#define HUB_SMALL_PATH "://res/hub_small.png" // 小交付中心
#define HUB_BIG_PATH "://res/hub_big.png"     // 大交付中心
/****************不同方向的采矿机******************/
#define MINER_A_PATH "://res/miner_A.png" // 朝左
#define MINER_D_PATH "://res/miner_D.png" // 朝右
#define MINER_S_PATH "://res/miner_S.png" // 朝下
#define MINER_W_PATH "://res/miner_W.png" // 朝上
/****************不同方向的传送带******************/
#define BELT_A_PATH "://res/belt_A.png"
#define BELT_A_S_PATH "://res/belt_A_S.png"
#define BELT_A_W_PATH "://res/belt_A_W.png"
#define BELT_D_PATH "://res/belt_D.png"
#define BELT_D_S_PATH "://res/belt_D_S.png"
#define BELT_D_W_PATH "://res/belt_D_W.png"
#define BELT_S_PATH "://res/belt_S.png"
#define BELT_S_A_PATH "://res/belt_S_A.png"
#define BELT_S_D_PATH "://res/belt_S_D.png"
#define BELT_W_PATH "://res/belt_W.png"
#define BELT_W_A_PATH "://res/belt_W_A.png"
#define BELT_W_D_PATH "://res/belt_W_D.png"
/****************不同方向的切割机******************/
#define CUTTER_A_PATH "://res/cutter_A.png" // 朝左
#define CUTTER_D_PATH "://res/cutter_D.png" // 朝右
#define CUTTER_S_PATH "://res/cutter_S.png" // 朝下
#define CUTTER_W_PATH "://res/cutter_W.png" // 朝上
/****************不同方向的垃圾桶******************/
#define TRASH_A_PATH "://res/trash_A.png" // 朝左
#define TRASH_D_PATH "://res/trash_D.png" // 朝右
#define TRASH_S_PATH "://res/trash_S.png" // 朝下
#define TRASH_W_PATH "://res/trash_W.png" // 朝上
//
/****************不同方向的采矿机******************/
#define MINER_BLUE_A_PATH "://res/miner_blue_A.png" // 朝左
#define MINER_BLUE_D_PATH "://res/miner_blue_D.png" // 朝右
#define MINER_BLUE_S_PATH "://res/miner_blue_S.png" // 朝下
#define MINER_BLUE_W_PATH "://res/miner_blue_W.png" // 朝上
/****************不同方向的传送带******************/
#define BELT_BLUE_A_PATH "://res/belt_blue_A.png"
#define BELT_BLUE_A_S_PATH "://res/belt_blue_A_S.png"
#define BELT_BLUE_A_W_PATH "://res/belt_blue_A_W.png"
#define BELT_BLUE_D_PATH "://res/belt_blue_D.png"
#define BELT_BLUE_D_S_PATH "://res/belt_blue_D_S.png"
#define BELT_BLUE_D_W_PATH "://res/belt_blue_D_W.png"
#define BELT_BLUE_S_PATH "://res/belt_blue_S.png"
#define BELT_BLUE_S_A_PATH "://res/belt_blue_S_A.png"
#define BELT_BLUE_S_D_PATH "://res/belt_blue_S_D.png"
#define BELT_BLUE_W_PATH "://res/belt_blue_W.png"
#define BELT_BLUE_W_A_PATH "://res/belt_blue_W_A.png"
#define BELT_BLUE_W_D_PATH "://res/belt_blue_W_D.png"
/****************不同方向的切割机******************/
#define CUTTER_BLUE_A_PATH "://res/cutter_blue_A.png" // 朝左
#define CUTTER_BLUE_D_PATH "://res/cutter_blue_D.png" // 朝右
#define CUTTER_BLUE_S_PATH "://res/cutter_blue_S.png" // 朝下
#define CUTTER_BLUE_W_PATH "://res/cutter_blue_W.png" // 朝上
/****************不同方向的垃圾桶******************/
#define TRASH_BLUE_A_PATH "://res/trash_blue_A.png" // 朝左
#define TRASH_BLUE_D_PATH "://res/trash_blue_D.png" // 朝右
#define TRASH_BLUE_S_PATH "://res/trash_blue_S.png" // 朝下
#define TRASH_BLUE_W_PATH "://res/trash_blue_W.png" // 朝上
/******************物品*******************/
#define CYCLE_PATH "://res/cycle.png"             // 圆形物品
#define RECT_PATH "://res/rect.png"               // 方形物品
#define LEFT_CYCLE_PATH "://res/left_cycle.png"   // 左圆形物品
#define RIGHT_CYCLE_PATH "://res/right_cycle.png" // 右圆形物品
/******************名字宏*******************/
#define NONE 0

// 方向
enum Direction
{
    UP = 0,
    DOWN = 1,
    LEFT = 2,
    RIGHT = 3
};

// 物品
enum Goods
{
    CYCLE = 1,
    RECT = 2,
    LEFT_CYCLE = 3,
    RIGHT_CYCLE = 4,
    BARRIER = 5
};

// 建筑
enum BuildingType
{
    HUB         = 1,
    MINER       = 2,
    CUTTER      = 3,
    TRASH       = 4,
    BELT_A      = 5,
    BELT_A_S    = 6,
    BELT_A_W    = 7,
    BELT_D      = 8,
    BELT_D_S    = 9,
    BELT_D_W    = 10,
    BELT_S      = 11,
    BELT_S_A    = 12,
    BELT_S_D    = 13,
    BELT_W      = 14,
    BELT_W_A    = 15,
    BELT_W_D    = 16,
    BELT        = 17
};

// Tickable工作状态
enum TickableStatus
{
    EMPTY = 0,
    RUNNING = 1,
    BLOCK = 2
};

// 关卡要求
enum LevelNeed
{
    NEED_CYCLE = 20,
    NEED_RECT = 30,
    NEED_LEFT_CYCLE = 40,
    NEED_RIGHT_CYCLE = 50,
};

// 物品价值
enum GoodsMoney
{
    CYCLE_MONEY_1 = 1,
    RECT_MONEY_1 = 2,
    LEFT_CYCLE_MONEY_1 = 3,
    RIGHT_CYCLE_MONEY_1 = 3,
    CYCLE_MONEY_2 = 2,
    RECT_MONEY_2 = 4,
    LEFT_CYCLE_MONEY_2 = 5,
    RIGHT_CYCLE_MONEY_2 = 5,
};

// 商店
enum StoreMenoey
{
    BIGGER_HUB = 500,
    CLEAR_BARRIERS = 500,
    INCREASE_MINE = 500,
    INCREASE_ITEM_VALUE = 500
};

// 建筑速率
enum BuildingSpeed
{
    MINER_SPEED_1 = 2700,
    MINER_SPEED_2 = 1800,
    BELT_SPEED_1 = 1500,
    BELT_SPEED_2 = 720,
    CUTTER_SPEED_1 = 2700,
    CUTTER_SPEED_2 = 1800,
};


//  画面更新频率
#define GAME_HZ 30

#endif // CONFIG_H
